home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / Music / MIDI / mod2midi / Mod2Midi.doc < prev    next >
Text File  |  1995-08-23  |  15KB  |  377 lines

  1. Mod2Midi V1.0 Amiga conversion © 1994 by Paul Huxham
  2.  
  3. MIDIMOD - Amiga Noise/Sound/Protracker to MIDI file converter (ver 0.2)
  4. © Andrew Scott 1993
  5.  
  6.  
  7. Conversion Authors Notes
  8. ========================
  9. Mod2Midi is based on MIDIMOD by Andrew Scott.
  10.  
  11. These instructions are based on the original program documentation by
  12. Andrew Scott.
  13.  
  14. The license for the use of this software is contained in the archive
  15. midimod2.zip.
  16.  
  17. The file midimod2.zip is the original PC archive of the source code.
  18.  
  19. If you modify the Amiga conversion - Mod2Midi, please follow the
  20. instructions in Andrew Scotts' license about naming conventions and source
  21. code distribution so that others don't have a hard time working which out
  22. version is what.
  23.  
  24. The included Amiga source code compiles under SAS/C 6.51.
  25.  
  26.  
  27. Mod2Midi - What it does
  28. ======================
  29. Mod2Midi is a program which converts music modules generated by Amiga
  30. tracker programs (MOD files) to general MIDI format 1 (MID files).  Some
  31. editing of the output MID file might be necessary, but next time there
  32. will be less editing to do as Mod2Midi can remember previous settings.
  33.  
  34.  
  35. Why convert MOD files to MID files?
  36. ===================================
  37. Even though MOD files contain some music-instructions that cannot be
  38. represented in MID format, there are many reasons why it is desirable to
  39. have music in MID form rather than MOD form:
  40.  
  41. * Top-of-the-range music editing programs do not handle MOD files, but
  42.   almost always handle MID files, or at least allow you to convert from MID
  43.   files.
  44.  
  45. * There exist programs to print out MID files as musical score.  I don't
  46.   know of any which do the same for MOD files
  47.  
  48. * MID files tend to be much smaller than MOD files
  49.  
  50. * MID files are more portable, having a well-known format, and have
  51.   utilities on many different computers.  MID files _ARE_ the industry
  52.   standard.
  53.  
  54. * MID files can be played on professional keyboards, allowing expert
  55.   recording/presentation of music
  56.  
  57.  
  58. How to use Mod2Midi
  59. ===================
  60. Mod2Midi is a CLI/Shell based program, designed to be run from a shell
  61. operating on the WorkBench screen. All parameters are supplied on the
  62. command line when launching Mod2Midi.
  63.  
  64.  
  65. Explanation of Parameters
  66. =========================
  67. The command template for Mod2Midi is:
  68.  
  69. MOD,MIDI,ABOUT/S,MAPSAMPLES/S,SAVEINFO/S,
  70. TRANSPOSE/S,DRUM/N,TEMPO/N,VOLUMESHIFT/S
  71.  
  72. ABOUT
  73. -----
  74.   Displays the copyright information.
  75.  
  76. MOD
  77. ---
  78.   The name of the source MOD file.
  79.  
  80. MIDI
  81. ----
  82.   The name of the target MIDI format 1 file.  Files that exist will be
  83. overwritten - BEWARE.
  84.  
  85. MAPSAMPLES
  86. ----------
  87. There are many, many MOD samples on computers around the world, so it is
  88. impossible to automatically know which instrument is equivalent to which
  89. sample.  You must tell Mod2Midi which instrument to use.  Use the mouse to
  90. select a sample from the list that appears on the screen.
  91.  
  92. Each sample may have an asterisk "*" before it - this means that there is
  93. actual sample data that corresponds to this sample - ignore any other
  94. samples...they won't be converted (except in name only).  Each sample will
  95. have an instrument code to its right.  If the code is prefixed by a "D"
  96. then it is a percussion code.
  97.  
  98. After selecting a sample, a list of all of the available instruments will
  99. appear on the screen.  Select one and the appropriate code will appear to
  100. the right of the chosen sample.  Samples that already have an instrument
  101. code should be left alone as they already have been matched with a sample's
  102. name.
  103.  
  104. SAVEINFO
  105. --------
  106. Because it is nicer to have the computer select instruments, transpositions
  107. and volume shifts for you than having to look them up each time, Mod2Midi
  108. keeps a list of "known" mappings/transposes/volume-shifts from MOD-samples
  109. to MIDI instruments.
  110.  
  111. Once you have selected a mapping using the MAPSAMPLES, a transposition
  112. using TRANSPOSE, or a volume shift using VOLUMESHIFT you can use this
  113. command to save a sample's info to the info file.
  114.  
  115. TRANSPOSE
  116. ---------
  117. Even if you have matched a MOD sample with a MIDI instrument there is no
  118. guarantee that each will play at the same pitch.  MOD samples tend to sound
  119. high, low, very low, or slightly off pitch when both MOD and MIDI
  120. instruments play the same note.  The trick is to map MOD samples to a
  121. different note during the conversion, so that there won't be any horrible
  122. musical clashes.
  123.  
  124. A good way to do this is to find a sample that maps exactly to a MIDI
  125. instrument, and then get a MOD-editor and play other samples, and compare
  126. those samples to the "true" sample.  This way you can find the number of
  127. semitones difference there are between a MOD sample and its instrument
  128. equivalent.
  129.  
  130. For example, bass guitar samples are usually an octave lower (sometimes
  131. two) than their actual note.  As an octave is 12 semitones, if the guitar
  132. sample is transposed down 12 semitones, it sounds ok.  Another example,
  133. chords are usually made up of 3 notes which are played simulateously (major
  134. chords have part of them transposed up 4 semitones, and another part 7
  135. semitones where minor chords have 3 and 7 semitone transposed parts).
  136.  
  137. After selecting a MOD-sample from the menu (the numbers on the right are
  138. the transpose values), you can enter in its transposition.  For a bass
  139. sample you might enter:
  140.       -12
  141.  
  142. then press <RETURN>, whereas for a major chord you might enter
  143.       0, 4, 7
  144.  
  145. then press <RETURN>, and for a bass major chord you might enter
  146.       -12, -8, -5
  147.  
  148. then press <RETURN> (note than -12+4=-8 etc.).
  149.  
  150. During conversion, these transpositions are applied and hopefully the
  151. MID-file won't sound as if many musicians are playing using different
  152. scales.
  153.  
  154. A couple of things you need to watch out for:  if one of the transposition
  155. values is 0 then it must be the first value, also don't transpose
  156. percussion instruments - it's not a good idea.
  157.  
  158. DRUM
  159. ----
  160. As different software/hardware is by definition different, you can use this
  161. option to set the drum channel.  The default drum channel is 10.
  162.  
  163. TEMPO
  164. -----
  165. Some MOD-files use an old tempo convention and don't convert at all well if
  166. the wrong convention is used.  The default TEMPO value is 0 for NORMAL.
  167.  
  168. If the MID file produced sounds like the timing is out of whack, try
  169. setting TEMPO to 1 for EXTENDED and do the conversion again.
  170.  
  171. VOLUMESHIFT
  172. -----------
  173. This is similar to transposing, but it affects volume rather than pitch.
  174. Mod2Midi alters volumes by applying a formula to each volume in the MOD
  175. file.
  176.  
  177. The formula is simple:  it takes the volume, then adds a number, then
  178. multiplies by a number, then divides by a number.  So all you have to do is
  179. supply 3 numbers, though when you come to change a volume formula you will
  180. notice that Mod2Midi has already given each sample a formula.
  181.  
  182. Mod2Midi analyses each sample of the MOD file when you it reads in the MOD
  183. file and based on this analysis allocates a formula to the samples.  Note
  184. that these formulae are not necessarily correct, they are just Mod2Midi's
  185. best guess, but most of the time they will suffice.  To set the formula
  186. yourself, choose a sample then enter the three numbers for the formula
  187. respectively (as you do for transposition amounts), eg.  if you want to
  188. "add 1, multiply by 2, then divide by 3" every volume for a particular
  189. sample, you would enter:
  190.       1, 2, 3
  191.  
  192. then press <RETURN>.  The last two numbers cannot be negative, and the last
  193. number cannot be 0.
  194.  
  195.  
  196. Converting MODs
  197. ===============
  198. Use the MAPSAMPLES option to set samples to appropriate instruments.  If
  199. you get an error message which says that you have too many different
  200. instruments, then use the MAPSAMPLES option to reduce the number.
  201.  
  202.  
  203. The Instruments
  204. ===============
  205. A list of MIDI instruments is kept in the file "Mod2Midi.ins".  Each
  206. instrument on a separate line.  The first 128 lines must hold the
  207. instruments 0 to 127.  The lines after this hold the percussion instruments
  208. (no more than 128).  All instruments should have a code as the first thing
  209. on the line.  The code must consist of the letter "D" (if it is a
  210. percussion instrument) followed by a number from 0 to 127.
  211.  
  212. This file can be edited with a text editor to put in the instruments for
  213. your particular computer/keyboard/software etc.  The supplied instrument
  214. file contains the Soundblaster MIDI patches, if you are using a synth or a
  215. different sound card, then edit this file and insert the correct
  216. instruments.
  217.  
  218.  
  219. The Info File
  220. =============
  221. A list of default mappings and transpositions is kept in the text file
  222. "Mod2Midi.map".  This is maintained with the SAVEINFO option, but it can
  223. also be edited with a text-editor.
  224.  
  225. Each sample is on a separate line, and consists of the first word in the
  226. sample's name followed by 7 numbers, all separated by spaces.  The first
  227. word is the sample's name (which comes right after any header (st-xx:  or
  228. leading spaces) and has any intermediate spaces replaced by underline
  229. characters.  The first number is a mapping number, the next three numbers
  230. are transposition values (normally 0 0 0), and the last three are the
  231. volume-shift values (eg.  1 0 0).
  232.  
  233. The mapping numbers range from 0 to 255.  The numbers 0-127 correspond to
  234. the MIDI instruments 0-127, and the other mapping numbers are the
  235. percussion instrument codes plus 128 (without the "D" in front).
  236.  
  237. The transposition values hold either a set amount to transpose the
  238. instrument by (first transposition value) or a mapping to a chord (two or
  239. more non-zero numbers).  Any 0 transposition value must occur in the first
  240. position.  The transposition values range -128 to 127, 0 to 127, and 1 to
  241. 127 respectively in the formula (volume + x) * y / z.
  242.  
  243. Each line in the info file is in alphabetical order, and it would be a bad
  244. idea to put a sample in the wrong place.
  245.  
  246. All of the mapping/transpositions in the supplied "Mod2Midi.map" file are
  247. for the Soundblaster card.
  248.  
  249.  
  250. What is this .mm file?
  251. ======================
  252. Because there are some times when you don't want to store information about
  253. a MOD file in the info file, a file with the same name as the MOD- file
  254. except with a .mm extension is created.
  255.  
  256. This .mm file holds all of the information that you have entered about the
  257. MOD-file.  It is automatically read in when you load the MOD file, and
  258. automatically saved when you quit.  It is read in just before checking the
  259. info file (above), and so if you have added any new sample info that
  260. applies to that particular MOD-file it will be included.
  261.  
  262. You can safely delete the .mm file, but it will come back next time you
  263. using that MOD-file.
  264.  
  265.  
  266. Notes on Conversion
  267. ===================
  268. Firstly, the way the algorithm works, each different instrument is
  269. allocated a different channel (this makes later editing of the MID file
  270. much easier).  As there are only 16 different channels this causes a bit of
  271. a problem when you have a MOD file with 31 different samples.
  272.  
  273. All is not lost due to the nature of MOD files.  Each percussion instrument
  274. can be put on the same channel (10), giving you unlimited percussion
  275. instruments but 15 channels for the other instruments.  If the MOD file you
  276. are using has more than 15 completely different non-percussion samples then
  277. it is an unusual MOD file indeed, and you will need to give some of the
  278. non-percussion samples the same instrument.
  279.  
  280. There is also some ambiguity with regard to multiple notes of the same
  281. pitch on the same channel in the MIDI format.  The MOD format can handle it
  282. if the notes are on different channels, but if they are the same sample
  283. then Mod2Midi will map them to the same channel in MIDI format.  Some MIDI
  284. players allow "overlapping" notes, some don't - I was going to
  285. automatically remove "overlapped" notes, but no MIDI-player that I have
  286. look at chucks a fit if they are in, so they are still there.
  287.  
  288. It seems that there is also ambiguity with the MOD format, and tempo can be
  289. interpreted two ways.  If your MID file sounds like it should be in a
  290. different tempo in places, try using the TEMPO to set the type to 1 -
  291. EXTENDED.
  292.  
  293. Even with automatic volume-shift allocation and checking of the info- file
  294. for previous samples you will occasionally meet a converted MID file that
  295. doesn't sound right.Also, some samples may not be recognised by Mod2Midi
  296. and may need transposing otherwise the tune might sound horrible.  As soon
  297. as you find correct details about any new sample, feed them back into
  298. Mod2Midi so it can recognise them correctly next time.
  299.  
  300. Not all MOD effects can be reproduced in a MID file.  Things that are
  301. reproduced include:
  302.  
  303.   * Tempo (given that your MID player can handle a tempo-track)
  304.   * Note length (calculated from frequency, tempo, and # bytes in sample)
  305.   * Pattern Break
  306.   * Position Jump (pretend its a Pattern Break)
  307.   * Set Volume
  308.   * Note slides (slide up, slide down, slide to, fine-up, fine-down)
  309.     all implemented, but permanently in glissando mode (ie. not a
  310.     smooth slide).
  311.   * Arpeggio
  312.   * Volume Slides (and finevolume slides), but only if they occur at
  313.     the start of a note
  314.   * Set Sample Offset (actually retriggers the sample)
  315.   * Retrigger sample
  316.   * Cut sample
  317.   * Delay sample
  318.   * Pattern delay
  319.  
  320. Effects that are not reproducable, or have been ignored on the grounds that
  321. they are silly in a MID file are:
  322.  
  323.   * Vibrato and Tremolo (not really possible to do nicely in a MID file)
  324.   * Position Jump (sort of)
  325.   * Pattern Loop (can cause infinite loops. MIDI doesn't support loops)
  326.   * Set filter (an Amiga only hardware effect)
  327.   * Set glissando (permanently on)
  328.   * Set vibrato/tremolo waveforms (no MIDI equivalent)
  329.   * Invert loop
  330.  
  331.  
  332. Source Code
  333. ===========
  334. The source code is contained in this archive.  If you give Mod2Midi to
  335. anyone else or upload it anywhere or whatever, then you must give them the
  336. source code too!
  337.  
  338. It must always be possible for the user to be able to modify this program.
  339. It is legal to only possess the executable-code, but not to distribute only
  340. the executable.  It is legal to distribute only the source code.  For more
  341. information on the license, see the textfile also distributed with this
  342. archive.
  343.  
  344. Files in the Mod2Midi package:
  345.  
  346. Mod2Midi       Executable
  347. Mod2Midi.ins   Instrument file
  348. Mod2Midi.map   Info file
  349. Mod2Midi.doc   Documentation
  350. Mod2Midi.c     Source code
  351. Mod2Midi.h     Source code
  352. Select.c       Source code
  353. Text.h         Source code
  354. makefile       Source code
  355. midimod2.zip   Original PC archive
  356.  
  357.  
  358. How to get in touch
  359. ===================
  360. You can contact the original author, Andrew Scott at the following
  361. address:
  362.   ascott@tartarus.uwa.edu.au
  363.  
  364.   Andrew Scott
  365.   55 McCabe Street
  366.   Mosman Park
  367.   Western Australia 6012
  368.  
  369. You can contact the author of the Amiga conversion, Paul Huxham at the
  370. following address:
  371.     paulh@Perth.DIALix.oz.au
  372.  
  373.     PO Box 875
  374.     Morley
  375.     Perth
  376.     Western Australia 6943
  377.